home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG: World of Games / PC-SIG World of Games (CDRM1080710) (1993).iso / 1764 / LINETECH.DOC < prev    next >
Text File  |  1990-03-10  |  5KB  |  90 lines

  1.                         L I N E W A R S   Version 1.5x  
  2.                        Made in Finland by Patrick Aalto  
  3.  
  4.       Technical Information
  5.       
  6.         LineWars is compiled with Turbo Pascal 5.0 (currently 1600 lines)  
  7.       and Microsoft Macro Assembler 4.0 (very many lines). The source
  8.       code takes about 500KB of disk storage. LineWars is constructed as
  9.       a Pascal main program having various Assembler units to call. The
  10.       whole graphical game is one unit.
  11.       
  12.       Initial Procedures  
  13.  
  14.         When LineWars is started, it first checks that you have enough
  15.       free memory to run it. Then it checks the type and speed of the
  16.       machine. After that, LineWars checks the currently active display
  17.       adapter. Currently supported adapters are: CGA, EGA, EGA with only
  18.       64K RAM, Monochrome-EGA, Monochrome-VGA, MCGA, and VGA. 
  19.            
  20.         After that check LineWars reads in the settings-file. It first
  21.       checks the command line parameters and reads the file mentioned, if
  22.       it exists. If not, default settings are used. If no command line
  23.       parameters are given, LineWars tries to read a file LINEWARS.SET.
  24.       If it cannot be found, again default settings are used.
  25.       
  26.         When settings are read in,  LineWars checks wether DESQview (tm) 
  27.       or some other multitasking program is active. If it is, then music
  28.       can not be played. Then it checks for the presence of a mouse driver, 
  29.       if it should use mouse.
  30.       
  31.         After that the current screen contents are saved and Main menu is
  32.       shown. If Connect Mode is 'BBS-"door"', LineWars sends it's logo to
  33.       communications line. Cursor is also made hidden now.
  34.       
  35.         While in Main Menu, the line is constantly monitored to check if
  36.       we received an order to play ('ε' = ascii 238) or to start terminal
  37.       ('∞' = ascii 236) or, if 'BBS-"door", a request to quit (ctrl-X).
  38.       If none of these is received, LineWars checks if the user requested
  39.       an action. If so, that action is taken. If the action was Terminal,
  40.       an ascii 236 is sent to line, and if the action was 'quit', ctrl-X
  41.       is sent, unless in BBS-"door" mode, when ascii 236 is sent to make
  42.       the other side start terminal mode and receive 'LineWars quitting'-
  43.       texts. If mode is 'Single', nothing is actually sent or received.
  44.        
  45.         If Play is selected, then appropriate graphics mode is selected  
  46.       and the Cobra IV cockpit drawn on the screen. If War Mode is Duel,   
  47.       LineWars shows a 'wait for connection'-message and begins to wait  
  48.       for incoming 'ε'. If one is not received within about half a second, 
  49.       'ε' is sent to line. This repeats until 'ε' is received or the user
  50.       presses ESC. After a succesfull connection, LineWars sends to line
  51.       your codename  plus information whether your Key Damp is on or off.
  52.       It then tries to receive that information. When this is done, the
  53.       game starts.
  54.       
  55.         When in game,  first the keyboard interrupt is changed to make a
  56.       distinction between control- and letter keys. Then all meters are
  57.       drawn, the MainViewer opened and the line begins to transfer info
  58.       about which keys the user presses.
  59.       
  60.         After your shield energy is totally exhausted, your computer will
  61.       display a large 'GAMEOVER' - text, and your opponent will see your
  62.       ship explode.
  63.       
  64.       Line Protocol
  65.         
  66.         When in actual battle, LineWars sends and receives three bytes per
  67.       every new frame. That means the line must be able to transfer 60
  68.       characters per second if the Framerate is 20Hz. This is because the
  69.       game needs to be synchronized between two machines running possibly 
  70.       at different speeds. If you press a letter-key (or <┘ or BACKSPACE)
  71.       it will be sent between these synchronizing bytes so that the line
  72.       should actually be able to transfer about 80 bytes/sec. at maximum.
  73.       
  74.         The transferred bytes are coded as follows:
  75.          
  76.          7 6 5 4 3 2 1 0  = bit position  
  77.         ┌─┬─┬─┬─┬───┬───┐   
  78.       1.│1│E│A│M│crc│seq│ = Enemy died/Asteroid died/Missile fired.  
  79.         ├─┼─┼─┴─┴───┴───┤   crc = Checksum, seq = Send Sequence Number. 
  80.       2.│L│H│   Roll    │ = Laser fired, miss/Laser fired, hit.  
  81.         ├─┼─┼───────────┤   Roll = roll position + 30 
  82.       3.│D│I│   Dive    │ = Decrease speed/Increase speed.  
  83.         └─┴─┴───────────┘   Dive = dive position + 30
  84.       
  85.         As you can see,  only the  most important information  is passed.
  86.       This may result into very different environments  at different ends
  87.       of the line,  but usually one battle  does not last long enough for
  88.       this to be notable.
  89.          
  90.